<?php  

/*********************************************************************************************/

function doSQL_Read_Limit($SQL, $start, $limit){

$limit=" LIMIT $start,$limit";

$SQL = $SQL . " " . $limit;

//Conecto a la Base de Datos
$link=Conect();

//Ejecuto la consulta
$result = mysql_query($SQL, $link);
$i=0;

if(!$result){//Si dio error
	echo "<script> alert(\"error : $SQL\"); </script>";
	die;
}

$v_tmp = array();

//Cargo un vector con los nombres de los campos de la consulta a ejecutar
while ($i < mysql_num_fields($result)) {
    $meta = mysql_fetch_field($result, $i);
    $v_tmp[]=$meta->name;
    $i++;
}

$j=0;
$v_datos = array();

//Cargo una matriz referencial con los valores obtenidos de la consulta
while($row = mysql_fetch_array($result)){
	for($i=0;$i<count($v_tmp);$i++){
		$v_datos[$j][$v_tmp[$i]]=$row[$v_tmp[$i]];
	}
	$j++;
}

return $v_datos;

}

/********************************************************************************************************/

function doSQL_Read($SQL){

//Conecto a la Base de Datos
$link=Conect();

//Ejecuto la consulta
$result = mysql_query($SQL,$link);
$i=0;

if(!$result){//Si dio error
	recordUsersLogIn($_SESSION["idUsuario"], "error en : $SQL");
	echo "<script> alert(\"error: $SQL\"); </script>";
	die;
}

//Cargo un vector con los nombres de los campos de la consulta a ejecutar
while ($i < mysql_num_fields($result)) {
    $meta = mysql_fetch_field($result, $i);
    $v_tmp[]=$meta->name;
    $i++;
}

$j=0;
//Cargo una matriz referencial con los valores obtenidos de la consulta
while($row = mysql_fetch_array($result)){
	for($i=0;$i<count($v_tmp);$i++){
		$v_datos[$j][$v_tmp[$i]]=$row[$v_tmp[$i]];
	}
	$j++;
}

return $v_datos;

}

/********************************************************************************************************/

function doSQL_ReadSimple($SQL){

//Conecto a la Base de Datos
$link=Conect();

//Ejecuto la consulta
$result = mysql_query($SQL,$link);
$i=0;

if(!$result){//Si dio error
	echo "<script> alert(\"error en : $SQL\"); </script>";
	die;
}

//Cargo un vector con los nombres de los campos de la consulta a ejecutar
while ($i < mysql_num_fields($result)) {
	$meta = mysql_fetch_field($result, $i);
    $v_tmp[]=$meta->name;
    $i++;
}

//Cargo una matriz con los valores obtenidos de la consulta
while($row = mysql_fetch_array($result)){
	for($i=0;$i<count($v_tmp);$i++){
		$v_datos[$v_tmp[$i]]=$row[$v_tmp[$i]];
	}	
}

return $v_datos;

}

/********************************************************************************************************/

function doSQL_Write($SQL){

    
if($_SESSION["ontransaction"]){//if inside a transaction, just push the sql query into the sql array and exit.
    array_push($_SESSION["v_sqlForTransaction"],$SQL);
    return;
}
    
//Conecto a la Base de Datos
$link=Conect();

//Ejecuto la consulta
$result = mysql_query($SQL,$link);

if(!$result){//Si dio error
	echo "<script> alert(\"error en : $SQL\"); </script>";
	//saveErrorLogDB("Error: ".$SQL);
	die;
}
else{
	//saveLogDB($SQL);
}

return $result;

}

/********************************************/

function doSQL_ReadSpecialConn($SQL){

//Conecto a la Base de Datos
$link=Conectarse2();

//Ejecuto la consulta
$result = mysql_query($SQL,$link);
$i=0;

if(!$result){//Si dio error
	echo "<script> alert(\"error en : $SQL\"); </script>";
	die;
}

//Cargo un vector con los nombres de los campos de la consulta a ejecutar
while ($i < mysql_num_fields($result)) {
	$meta = mysql_fetch_field($result, $i);
    $v_tmp[]=$meta->name;
    $i++;
}

$j=0;
//Cargo una matriz referencial con los valores obtenidos de la consulta
while($row = mysql_fetch_array($result)){
	for($i=0;$i<count($v_tmp);$i++){
		$v_datos[$j][$v_tmp[$i]]=$row[$v_tmp[$i]];
	}
	$j++;
}

return $v_datos;

}

/********************************************************************************************************/

function doSQL_Write_Transaction(){
    
$v_SQL_Queries = $_SESSION["v_sqlForTransaction"];
    
//Conecto a la Base de Datos
$link=Conect();

mysql_query("BEGIN", $link);
$error=false;

for($i=0;$i<count($v_SQL_Queries);$i++){
    
    $SQL=$v_SQL_Queries[$i];

    $result=mysql_query($SQL, $link);

    if(!$result){
        $error=true;
        break;
    }
    
}

if($error) {
    mysql_query("ROLLBACK");
    //recordUsersLogIn($_SESSION["idUsuario"], $SQL);
    return false;
}
else{
    mysql_query("COMMIT");
}

return $result;

}

?>